home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / E / Blitter / Moire.e < prev    next >
Encoding:
Text File  |  1998-05-15  |  2.2 KB  |  91 lines

  1. /* GMS-example
  2.  * Name: Moire.e
  3.  * Type: Blitter example (converted from Moire.c)
  4.  * Version: 1.0
  5.  * Author: G. W. Thomassen (0000272e@lts.mil.no)
  6.  */
  7.  
  8. MODULE 'gms/dpkernel','gms/dpkernel/dpkernel','gms/graphics/pictures','gms/files/files',
  9.        'gms/screens','gms/system/register','gms/system/modules','gms/input/joydata',
  10.        'gms/graphics/screens','gms/blitter','gms/graphics/blitter'
  11.  
  12. ENUM NONE,ERR_LIB,ERR_SMOD,ERR_BMOD,ERR_JOY,ERR_SCR
  13.  
  14. DEF scr:PTR TO screen,
  15.     joy:PTR TO joydata,
  16.     scrmod:PTR TO module,
  17.     bltmod:PTR TO module
  18.  
  19. PROC main() HANDLE
  20.   init_all()
  21.  
  22.   Show(scr)
  23.   moire()
  24.  
  25.   Raise(NONE)
  26. EXCEPT DO
  27.   IF joy THEN Free(joy)
  28.   IF scr THEN Free(scr)
  29.   IF bltmod THEN Free(bltmod)
  30.   IF scrmod THEN Free(scrmod)
  31.   CloseDPK()
  32.   SELECT exception
  33.     CASE ERR_SCR; WriteF('Error opening screen\n')
  34.   ENDSELECT
  35.   CleanUp(0)
  36. ENDPROC
  37.  
  38. PROC init_all()
  39.   IF (dpkbase:=OpenLibrary('GMS:libs/dpkernel.library',0))=NIL THEN Raise(ERR_LIB)
  40.  
  41.   IF (scrmod:=Init([TAGS_MODULE,NIL,
  42.       MODA_NUMBER,    MOD_SCREENS,
  43.       MODA_TABLETYPE, JMP_AMIGAE,
  44.       TAGEND], NIL))=NIL THEN Raise(ERR_SMOD)
  45.       scrbase:=scrmod.modbase
  46.  
  47.   IF (bltmod:=Init([TAGS_MODULE,NIL,
  48.       MODA_NUMBER,    MOD_BLITTER,
  49.       MODA_TABLETYPE, JMP_AMIGAE,
  50.       TAGEND], NIL))=NIL THEN Raise(ERR_BMOD)
  51.       bltbase := bltmod.modbase
  52.  
  53.   IF (scr:=Init([TAGS_SCREEN, NIL,
  54.          GSA_BitmapTags, NIL,
  55.          BMA_Palette, [PALETTE_ARRAY,4,$000000,$808080,$A0A0A0,$F0F0F0],
  56.          TAGEND, NIL,
  57.        TAGEND],NIL))=NIL THEN Raise(ERR_SCR)
  58.  
  59.    IF (joy:=Init(Get(ID_JOYDATA),NIL))=NIL THEN Raise(ERR_JOY)
  60. ENDPROC
  61.  
  62. PROC moire()
  63.   DEF xm,ym,i,exit=FALSE
  64.  
  65.   REPEAT
  66.     Clear(scr.bitmap)
  67.     xm:=FastRandom(scr.width)
  68.     ym:=FastRandom(scr.height)
  69.  
  70.     FOR i:=0 TO scr.height
  71.       Query(joy)
  72.       IF (joy.buttons AND JD_LMB); exit:=TRUE; JUMP efor0; ENDIF
  73.  
  74.       DrawLine(scr.bitmap,xm,ym,0,i,Mod(i,3),$FFFFFFFF)
  75.       DrawLine(scr.bitmap,xm,ym,scr.width,i,Mod(i,3),$FFFFFFFF)
  76.     ENDFOR
  77.  
  78.     FOR i:=0 TO scr.width
  79.       Query(joy)
  80.       IF (joy.buttons AND JD_LMB); exit:=TRUE; JUMP efor0; ENDIF
  81.  
  82.       DrawLine(scr.bitmap,xm,ym,i,0,Mod(i,3),$FFFFFFFF)
  83.       DrawLine(scr.bitmap,xm,ym,i,scr.height,Mod(i,3),$FFFFFFFF)
  84.     ENDFOR
  85.     WaitTime(100)
  86.  
  87.     efor0:
  88.   UNTIL (joy.buttons AND JD_LMB)
  89. ENDPROC
  90.  
  91.